#include<stdio.h>

#define COUNT 6
#define BEGIN goto begin

int i = COUNT;

int main()
{

    static const void *goto_list[COUNT] = 
    {
        &&hello_0, &&hello_1, &&hello_2,
        &&hello_3, &&hello_4, &&hello_5
    };  //address-of-label extension

begin:
    if(i)
    {
        i--;
        goto *goto_list[i];
    }
    return 0;
hello_0:
    printf("Hello,world!\n");
    BEGIN;
hello_1:
    printf("Hello,gcc!\n");
    BEGIN;
hello_2:
    printf("Hello,clang!\n");
    BEGIN;
hello_3:
    printf("Hello,windows!\n");
    BEGIN;
hello_4:
    printf("Hello,java!\n");
    BEGIN;
hello_5:
    printf("Hello,linux!\n");
    BEGIN;
}
